#include <vector>
#include <iostream>

using namespace std;

/*
给定两个按升序排列的数组 nums1 和 nums2，以及两个整数 m 和 n，
分别表示 nums1 和 nums2 中的元素个数。

编写一个函数，按以下要求合并 nums1 和 nums2：

1. 最终合并的结果不能用新数组表示，而是要保存到 nums1 里；
2. 合并后的结果，有 m + n 个元素；
3. 合并后的结果，仍旧是升序排列的；
4. 不能使用循环嵌套；
----
nums2 中的每一个元素 push_back 到 nums1;
sort(nums1.begin(), nums1.end());
----
能不能做到把 nums2 中的元素插入到 nums1 的同时，就让它完成排序。
----
      vr1
nums1 = [-8, -7, -6, -4, -3, -2, -1, 0]
                                        ^end
          vr2
nums2 = [-8, -7, -6, -3, 0]

1. nums1 里必须有足够多的位置来容纳 nums2 的元素，对 nums1 扩容

定义一个有 nums2.size() 个 0 的数组
vector<int> zeros(nums.size(), 0);
nums1.insert(nums1.end(), zeros.begin(), zeros.end());

然后把这个数组一次性的加入到 nums1 的末尾

          vP
nums1 = [-8, -6, -5, 0, 0, 0]
          ^r1
nums2 = [-6, -3, 0]
          ^r2

2. 准备记录位置的标记

3. 从右向左合并数组


当 for 循环结束的时候，判断，nums2 的位置 r2 ~ 0 所有的元素，继续补充到 nums1 里。
*/

void merge_sorted(
  vector<int> &nums1,
  vector<int> nums2,
  int m,
  int n
) {
  //  
}

int main(int argc, char const *argv[])
{
  /* code */
  return 0;
}
